package com.ruoyi.program.mapper;

import com.ruoyi.program.domain.CreateNameOrder;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
import java.util.List;
import java.util.Date;

/**
 * 创建起名字订单Mapper接口
 * 
 * @author 陈冲
 * @date 2025-04-21 15:20:00 创建起名字订单Mapper接口
 */

public interface CreateNameOrderMapper {

    /**
     * 创建起名字订单
     *
     * @param 起名字订单实体类
     * @return int
     */
    public int createNameOrder(CreateNameOrder createNameOrder);

    /**
     * 更新用户支付订单状态
     * 
     * @param orderId 订单号
     * @return int 更新结果
     */
    public int updateOrderStatus(String orderId);

    /**
     * 根据订单号查询订单对象
     * 
     * @param outTradeNo 订单号
     * @return 订单对象
     */
    // CreateNameOrder getOrderByOutTradeNo(String outTradeNo);

    /*
     * 修改更新订单状态
     * 
     * @param orderId 订单号
     * 
     * @param status 订单状态
     * 
     * @return int 更新结果
     * 
     */
    public int updateNameOrderService(@Param("status") Integer status, @Param("outTradeNo") String outTradeNo,@Param("payTime") Date payTime);

    /*
     * 根据订单号查询订单信息
     * 
     * @Param orderId 订单号
     * 
     * @return CreateNameOrder 查询结果
     */
    public CreateNameOrder selectNameOrderService(String tradeNO);

    /*
     * 更新支付宝交易号
     * 
     * @Param tradeNo 支付宝交易号
     * 
     * @return int 更新结果
     * 
     */
    public int updateAlipayTradeNoService(@Param("alipayTradeNo") String tradeNo, @Param("orderNo") String orderNo);

    /*
     * 批量插入名字
     * 
     * @Param insertParams 插入参数
     * 
     * @return int 插入结果
     */
    public int insertNamesByOrderNo(Map<String, Object> insertParams);

    /*
     * 根据小程序用户查询订单列表
     * 
     * @Param userId 小程序用户ID
     * 
     * @return List<CreateNameOrder> 订单列表
     */
    public List<CreateNameOrder> selectUserOrderListService(@Param("userId") String userId,
            @Param("status") Integer status);

    /*
     * 根据订单号查询订单详情
     * 
     * @Param orderNo 订单号
     * 
     * @return CreateNameOrder 订单详情
     */

    public CreateNameOrder selectNameDetailsByOrderNo(@Param("orderNo") String orderNo);

    /*
     * 根据用户输入的名字查询风险
     *
     * @Param surname 订单号
     */
    public String querySurname(@Param("surname") String surname);

}
